package cn.dengta.webapp.user.model;

import cn.dengta.common.model.ValueProxy;
import cn.dengta.context.model.LabelI18nProxy;
import cn.dengta.context.model.UserEnumI18nKey;
import lombok.Getter;

@Getter
public enum AuditStatus implements LabelI18nProxy<AuditStatus, Integer> {
	/** 删除 */
	DELETE(-99, UserEnumI18nKey.STATUS_DELETE),
	/** 审核不通过 */
	VERIFY_FALSE(-1, UserEnumI18nKey.STATUS_VERIFY_FALSE),
	/** 待审核 */
	WAIT_VERIFY(0, UserEnumI18nKey.STATUS_WAIT_VERIFY),
	/** 审核通过 */
	VERIFY_TRUE(1, UserEnumI18nKey.STATUS_VERIFY_TRUE),
	//
	;

	public final Integer value;
	public final ValueProxy<AuditStatus, Integer> proxy;

	AuditStatus(Integer value, String label) {
		this.value = value;
		this.proxy = new ValueProxy<>(this, value, label);
	}

	public static AuditStatus[] getValues() {
		return ValueProxy.getCachedAll(AuditStatus.class);
	}

	public static AuditStatus of(Integer value) {
		return WAIT_VERIFY.getValueOf(value);
	}

	public static AuditStatus ofVerify(boolean yesOrNo) {
		return yesOrNo ? VERIFY_TRUE : VERIFY_FALSE;
	}

}
